package cn.virens;

import java.util.function.Consumer;

import org.tio.core.ChannelContext;

public interface TCPServerDevice {
	/**
	 * 根据MAC获取对应连接
	 * 
	 * @param  mac 集中控制器MAC
	 * @return
	 */
	ChannelContext channelGet(String mac);

	void channelbind(ChannelContext channelContext, String mac);

	void channelbindVer(ChannelContext channelContext, String ver);

	void channelUnbind(ChannelContext channelContext);

	void channelForEach(Consumer<ChannelContext> consumer);

	void channelTimeout(ChannelContext channelContext, Integer idleCount, Integer heartbeat);

	void channelReconnect(ChannelContext oldChannelContext, ChannelContext channelContext);

	/**
	 * 开关设备设置
	 * 
	 * @param imei         设备标识
	 * @param type         租赁模式
	 * @param acStatus     激活状态
	 * @param deviceStatus 水机状态
	 */
	String deviceSwitch(String imei, String type, String acStatus, String deviceStatus);

	/**
	 * 剩余项设置
	 * 
	 * @param imei 设备标识
	 */
	String activation(String imei, byte[] bs);

	/**
	 * 数据查询
	 * 
	 * @param imei 设备mac
	 */
	String queryData(String imei);
}
